package day10;

/*
* 创建自定义类，重写equals方法，自定义对象相等规则
* */
public class Demo {
    public static void main(String[] args) {
        Person person1 = new Person("张三","1001");
        Person person2 = new Person("张三","1002");



        System.out.println(person1.equals(person2));

        System.out.println(person1.toString());
        System.out.println(person2);


       /* String str = new String("123");
        String str2= new String("123");
        System.out.println(str);
        System.out.println(str2);
        System.out.println(str == str2);
        //对于字符串来说，重写了父类Object的equals方法，
        // 自定义比较规则只要值相等那么字符串就相等
        System.out.println(str.equals(str2));*/
    }
}
class Person{

    //名称
    private String name;

    //身份证号
    private String idNumber;

    public Person(String name,String idNumber){
        this.idNumber = idNumber;
        this.name = name;
    }

    //重写equals 方法，定义只要两个对象的属性相等，就认为是两个对象相等
    @Override
    public boolean equals(Object obj){
        //如果对象地址相等，肯定是同一个对象
        if(this == obj){
            return true;
        }
        //如果当前对象是Person类，转为Person类型
        if(obj instanceof Person){
            Person person = (Person) obj;
            //进行属性比较
            if(this.name.equals(person.name)&&this.idNumber.equals(person.idNumber)){
                return true;
            }
        }
        return false;
    }

    //重写toString方法，将对象按照自定义的方式打印
    @Override
    public String toString(){

        return "Person中的name:"+this.name+",idNumber:"+this.idNumber;
    }
}
